Distributed search system and method

ABSTRACT

A method and system for providing distributing a query to devices on a communications network, such as servers on the internet, using an application that can survey a subscriber&#39;s server that can include text documents and databases, and use the formatting information and data from the survey to create at least one dictionary customized to the subscriber&#39;s data sources. A user seeking information can initiate a search or query from an initiating device using keywords, natural language terms, connectors, expressions, etc., and the query can be transmitted to various subscriber customized dictionaries. The customized dictionaries can customize the query based on respective subscriber databases and text documents, text search engines, etc., to produce an customized query result. The query results can be filtered and integrated for presentation to the initiating device. Search results can be customized using user preference or profile information.

CLAIM OF PRIORITY

[0001] This application claims priority to U.S. Ser. No. 60/221,546entitled “Distributed Natural Language Search Method”, naming Larry R.Harris as inventor, and filed on Jul. 28 2000, the contents of which areherein incorporated by reference in their entirety.

BACKGROUND

[0002] 1. Field

[0003] The systems and methods relate generally to search systems andmethods, and more particularly to efficiently locating and accessinginformation across a communications network such as the internet.

[0004] 2 Description of Related Art

[0005] The internet provides a single conduit to reach a supplier of aproduct or information that can be located, in some cases, throughoutthe world. One challenge for internet customers or consumers, and henceinternet businesses, is knowing the suppliers to contact, and how togain proper access to the suppliers. The success of commerce on theinternet therefore depends on customers'ability to locate productsand/or information easily and quickly; however, industry statisticsindicate that over seventy percent of potential customers to internetwebsites leave the websites without finding their desiredproduct(s)/information. This result is not desirable for the website ingenerating profits directly through internet sales, or indirectlythrough advertising revenue.

[0006] First generation techniques for finding products and/orinformation on the internet were advertiser-based and listed websites,rather than individual products. Second generation techniques involvedaggregating product and other information from multiple supplier sites(product catalogs) at online shopping malls or business-to-business“vortals” to allow consumers to access consolidated listings acrossmultiple suppliers. It is anticipated that the next generation suppliernetworks may dynamically access information from relevant suppliers inresponse to a buyer's requirements and present only the suppliers andproducts that precisely meet the consumers'needs.

SUMMARY

[0007] The present disclosure provides a system and method forperforming a search of data sources that can reside on a network such asthe internet. The search can be specific to the content and organizationof the data sources. The search can also be a distributed search tomultiple data sources. Data sources can include textual documents suchas web pages that can include program instructions, and other types oftext documents, text files, and databases, although other data sourcescan be included. The data sources can reside on one or more servers orother devices on a network. Searches or queries can be initiated usingnatural language expressions, sentences, keywords, or combinationsthereof, from which data source content-specific queries can begenerated and executed. In some embodiments, a dynamically generatedcustomized query can be formed and issued for each data source to besearched or queried.

[0008] In one embodiment, the methods and systems can provide anapplication that can be installed on a subscriber's server to allow awebsite and/or other data sources accessible to the server, to besearched without requiring pre-integration, reformatting, etc. of theserver or the data on the server. In another embodiment, the applicationcan reside on another device or server that can be in communication withthe subscriber's website server. For the purposes of the methods andsystems described herein, a “website” can be understood to include adocument on a network such as the internet or an intranet, that caninclude a home page and other documents and files that can be accessedthrough the webpage either directly or indirectly, and the website canalso include databases that can be accessed directly or indirectly. Theapplication can develop a customized query for the website and/or otherdata sources accessible to the server, using wired or wirelesscommunications systems and protocols.

[0009] When a subscriber maintains a product catalog database, forexample, the installed application can access the database and build acustomized dictionary that can convert a natural language or keywordsearch query to a precise SQL query for the subscriber's product catalogdatabase. Additionally and optionally, if the target of the search istext, the installed application can build a custom dictionary cangenerate an advanced text search of the website using one or morestandard text search engines that may be otherwise installed at oravailable to the website.

[0010] In some embodiments, the methods and systems can allow aninternet user or other internet accessible entity, including non-humanentities, to initiate a search from, for example, a website. Such awebsite can hereinafter be referred to as an initiating website, and canbe the network location from which the search can be broadcast ordistributed to subscriber websites and hence, customized dictionaries.In one embodiment, the customized dictionaries can receive a HTTPcommand and thereafter reach behind security measures such as firewallsto access otherwise protected or secure data. The systems and methodscan also allow subscribers to receive a search command or queryinformation from the initiating website, utilize the subscriber's localcustomized dictionary to translate the search for the respectivewebsite, data source, etc., initiate a customized search of thesubscriber's website, data source, etc., and extract the relevantinformation for submission as search results to the initiating website.In one embodiment, the search can be an SQL search or a text search.

[0011] In one embodiment, the application at a particular subscriber'sserver can immediately determine from the received search command andthe customized dictionary, that a search may not be necessary becausethe website and/or data source may not include relevant information,products, services, etc.

[0012] In an embodiment, the search results from subscribers can beformatted in XML, and the initiating website can receive the multiplesearch results and integrate the XML results for presentation to a userat the initiating site. The results can also be formatted forpresentation by email, instant messaging, or for voice. In someembodiments, the query can be submitted by email, instant messaging, orvoice.

[0013] The methods and systems can produce search results that caninclude a subscriber (supplier) name, a product name or identifier, aproduct price, a product description, a product image, etc. In oneembodiment, the user's (or querying entity's) selection of a product canprovide a transition to an order basket that can be at the initiatingwebsite, the subscriber's website, or an alternate website. In oneembodiment, search results can be accompanied by a URL of the orderprocessing system that can be used to order the product; and, when theuser selects the item, the relevant product information can be submittedto the purchasing system to initiate the purchase process.

[0014] The methods and systems can allow a subscriber to access andsearch a cooperating subscriber's website and products in a peer-to-peerrelationship.

[0015] The methods and systems can accommodate customized searches.Accordingly, a user can establish an account or profile that can betransmitted or otherwise associated with the search or query requestfrom the initiating device or website. The user's profile can beincorporated into the customized searches at the subscriber websites. Inone embodiment, the user can transmit the profile with the queryinformation or search request, while in another embodiment, the user canbe identified at the initiating device or website by an account numberthat can allow access to a locally or centrally stored profile forsubmission with the inquiry. In yet another embodiment, a user cansubmit or otherwise be associated with a profile such that subscriberscan customize a search or query based on the user profile and/oridentity.

[0016] The methods and systems can allow a user to customize thepresentation of search results. For example, a user can select an optionto view search results by price. In an embodiment, a subscriber cancustomize or otherwise control the search results. For example, asubscriber may not produce a search result for a particular productunless the inventory level for that product exceeds a particular value.

[0017] In one embodiment, subscribers can update respective customizeddictionaries to produce more accurate searches that can reflect changesin terminology, etc. In an embodiment, a dictionary can be updatedlocally or remotely via a wired or wireless network.

[0018] The methods and systems can allow hierarchical searching ofmultiple servers and/or data sources using a “broker” dictionary thatcan receive query information and/or a search request from theinitiating website or device, and broadcast the request to several othercustomized dictionaries, known as broadcast dictionaries, that can belocated, for example, on various subscribers'servers. The brokerdictionary can receive and compile search results from broadcastdictionaries, and transfer a single, composite search result to theinitiating website. The broker dictionary can be utilized as anintelligent filter to intelligently select only specific broadcastdictionaries that may be more likely to produce relevant search results.

[0019] In an embodiment, the methods and systems can identify customizeddictionaries using a URL that can allow a remote server to access thedictionary, create a local copy, modify the copy, and transmit themodified copy to the original location for re-writing, etc.

[0020] Other objects and advantages will become apparent hereinafter inthe specification and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 displays an architectural block diagram of a system thatpractices the principles of the methods and systems described herein fora single data source;

[0022]FIG. 2 displays systems and methods according to FIG. 1 for anexemplary internet embodiment;

[0023]FIG. 3 displays systems and methods according to FIG. 1 for anexemplary query translation architecture;

[0024]FIG. 4 displays systems and methods according to FIG. 1 for anexemplary architecture providing query translation and retrieval;

[0025]FIG. 5 displays systems and methods according to FIG. 1 for anexemplary query translation, retrieval, and presentation architecture;and,

[0026]FIG. 6 is a diagram representing systems and methods in accordancewith the principles of FIG. 1 that include a broker dictionary.

DESCRIPTION

[0027] To provide an overall understanding, certain illustrativeembodiments will now be described; however, it will be understood by oneof ordinary skill in the art that the systems and methods describedherein can be adapted and modified to provide systems and methods forother suitable applications and that other additions and modificationscan be made without departing from the scope hereof.

[0028] Referring now to FIG. 1, there is a block diagram of a system 100that implements the techniques described herein. As will become apparentherein, the techniques as described in relation to FIG. 1 have manyapplications and embodiments, some of which can be referenced hereinwith respect to other figures. FIG. 1, and other Figures providedherein, can therefore be understood to represent the techniques, andwhile pictorial objects can be represented in the Figures, those withordinary skill in the art will understand that these pictorial objectscan be provided for understanding only and are not intended to be alimitation on the methods and systems. Accordingly, pictorial objectsand their associated concepts can be combined with other pictorialobjects, or additionally and optionally, separated into furtherpictorial objects, while not departing from the methods and systems.

[0029] As FIG. 1 indicates, the techniques herein can be initiated by asurvey 102 of a data source 20. The survey can be automated or manuallyguided to identify data sources 20. As will be understood herein, datasources can include one or more textual documents, databases, etc.,where a textual document can be understood to include a text file, webpage, etc., that can be formatted text such as HTML, XML, some otherSGML format, or another text format. A data source that is a databasecan use a format compatible with MySQL, SQL, Oracle, Informix, Sybase,the Freedom Engine, Access, ODBC, DB2, etc. Those with ordinary skill inthe art will recognize that the methods and systems are not limited tothe type or format of the data sources. Through the survey 102, the datasource(s) can be analyzed with regard to data format, data type, dataorganization (e.g., categorization, hierarchical structure), relevantterms and phrases, relationships between words, terms, and phrases,identification of abbreviations or word/phrase variations, codes relatedto data (purchase codes, product codes, price codes, or any other codethat can relate to categorizing the product in terms of price,demographic appropriateness or characteristics, etc.) etc. Otherinformation related to the data source can be manually provided. In someembodiments, the survey can be automated, and additional informationincluding the number of data sources, etc., can be determined. For thepurposes of illustration with respect to the embodiment of FIG. 1, adatabase data source 20 is illustrated, although such an example isprovided for illustration and not limitation, and multiple and variedformat data sources, including textual data sources, can be utilized forthe methods and systems.

[0030] A dictionary 18 can be formulated 104 based on the survey results102. The dictionary 18 can be understood to be, for example, a computerprogram that can be implemented in a higher level language such as C,C++, Java, etc., that can receive query information as input, and canprovide as output, a query formatted and otherwise customized for thedata source.

[0031] Referring again to FIG. 1, query information 106 can be receivedby the dictionary 18. Although FIG. 1 illustrates only one dictionary18, it can be understood that there can be multiple dictionaries, and insuch embodiments, the query information 106 can be received by themultiple dictionaries. The illustrated dictionary 18 can generate acustomized query 110 based on the received query information 106 and thesurvey results. The customized query 110 can be applied to the datasource 20 from which the survey was conducted. The customized queryresults 112 can, in some embodiments, be returned to the dictionary 18.In some embodiments, the dictionary 18 can format, arrange, aggregate,etc., the customized query results 112 and transfer or forward theresults. For example, the query results 108 can be transferred to theentity that requested that supplied the query information 106, oranother entity can be designated or otherwise specified to receive thequery results 108. As indicated previously herein, FIG. 1 illustratesthe principles of the methods and systems which have wide applicability.

[0032] Referring now to FIG. 2, there is an architectural block diagram10 of an illustrative system that utilizes the methods and systems foran internet application. The FIG. 1 system indicates an initiatingdevice 12 that can include a digital computer system that can utilize awired or wireless communications link to connect to a communicationnetwork such as the internet. A user of the initiating device 12 canutilize different peripheral devices that can be integrated with orotherwise configured for compatible use with the initiating device 12.For example, the initiating device 12 can include a keyboard, keypad,stylus, digital camera, microphone, etc., that can communicate data tothe initiating device using wired or wireless communications systemsand/or protocols, etc. The initiating device 12 can be amicroprocessor-based system including a computer workstation, such as aPC workstation or a SUN workstation, handheld, palmtop, laptop, personaldigital assistant (PDA), cellular phone, etc., that includes a programfor organizing and controlling the initiating device 12 to operate asdescribed herein. Additionally and optionally, the initiating device 12can be equipped with a sound and video card for processing multimediadata. The initiating device 12 can operate as a stand-alone system or aspart of a networked computer system. Alternatively, the initiatingdevice 12 can be dedicated devices, such as embedded systems, that canbe incorporated into existing hardware devices, such as telephonesystems, PBX systems, sound cards, etc. Accordingly, it will beunderstood by one of ordinary skill in the art that the initiatingdevice 12 described herein has wide applicability and can beincorporated in many systems, and realized in many forms.

[0033] For a system according to FIG. 1, the initiating device 12 can beconnected to a network such as the internet and can be equipped withwhat is well-known as an internet “browser” such as the commerciallyavailable Netscape Navigator, Internet Explorer, etc., browsers, andthose with ordinary skill in the art will recognize that, depending uponthe initiating device 12 and its it configuration, the browser candiffer, and hence references herein to a browser can include referencesto a user interface to the internet or other network, wherein themethods and systems herein are not limited to the browser or othernetwork interface.

[0034] Furthermore, the initiating device 12 can access the internetusing wired or wireless communications links and/or protocols.

[0035] The initiating device 12 can communicate with a server that canbe represented in the FIG. 1 system as a System Server 14. Theillustrated server 14 can be also be a microprocessor-based systemincluding a computer workstation, such as a PC workstation or a SUNworkstation, handheld, palmtop, laptop, personal digital assistant(PDA), cellular phone, etc., that includes a program for organizing andcontrolling the server 14 to operate as described herein. Additionallyand optionally, the server 14 can be equipped with a sound and videocard for processing multimedia data. The server 14 can operate as astand-alone system or as part of a networked computer system.Alternatively, the server 14 can be dedicated devices, such as embeddedsystems, that can be incorporated into existing hardware devices, suchas telephone systems, PBX systems, sound cards, etc. In someembodiments, servers can be clustered together to handle more traffic,and can include separate servers for different purposes such as adatabase server, an application server, and a Web presentation server.The server 14 can also include one or more mass storage devices such asa disk farm or a redundant array of independent disk (“RAID”) system foradditional storage and data integrity. Read-only devices, such ascompact disk drives and digital versatile disk drives, can also beconnected to the server 14. As used herein, the term “server” isintended to refer to any of the above-described servers. In anembodiment, the initiating device 12 and the server 14 can be similarsystems.

[0036] In an embodiment of the FIG. 1 system, the initiating device 12can access the server 14 via the internet, and the server 14 can providea webpage or other interface to the initiating device 12 to allow a userof the initiating device 12 to input data indicative of a query forinformation. Those with ordinary skill in the art will recognize thatthis query information can be of varying formats, and can include one ormore keywords and/or natural language terms or expressions that canoptionally be linked using one or more logical operators, includingboolean expressions or notations such as “and”, “or”, and “not”. In someembodiments, additionally and optionally, “+” and “−” can be used toindicate desired and undesired terms, respectively, for example. Thosewith ordinary skill in the art will recognize that there are manydifferent connectors and methods of relating keywords, sentences,questions, and/or natural language words or expressions that can beused.

[0037] For the purposes of the discussion herein, natural language canbe understood to be a word, phrase, grouping of words, etc., in alanguage written or spoken by humans.

[0038] Additionally and optionally, the query information can include afull text statement or question or other natural language data. Thequery information can be entered to the initiating device 12 andthereafter edited using one or more of multiple peripheral devicesconnected to the initiating device that can include a keyboard, keypad,stylus, mouse, microphone, etc., wherein those of ordinary skill in theart will recognize that the methods and systems herein are not limitedto the mechanism of inputting query information to the initiating device12. Furthermore, the methods and systems are not limited to the formatof inputting the query information or a user interface that can beprovided to facilitate such entry. For example, in some embodiments, thequery information can be input using one or a combination of text inputboxes, text documents, menu selections, drop-down boxes, radio buttons,etc. The illustrated initiating device 12 also can provide a user withthe ability to initiate the search, and in one embodiment, searchinitiation can be understood as entering the query information.

[0039] Furthermore, the query information can be entered by a variety offormats, including human users that can utilize peripheral devicesand/or integrated software to enter and/or retrieve data by, forexample, a keyboard, stylus, voice commands, etc. In some embodiments,the query information can additionally and optionally be provided byautomated and/or non-human sources using scripts or other programmingtechniques. Accordingly, references herein to a user of the initiatingdevice 12 can be understood to include any entity, human or non-human,that can cause query information to be provided to the initiating device12.

[0040] Upon initiation of a search or query by a user of the initiatingdevice 12, for the FIG. 1 system, the initiating device 12 can transferthe query information to the server 14 that can include a list ofsubscribers that can be included, in one embodiment, in a database 13.The subscriber database 13 can be accessed locally or through a networksuch as the internet using wired or wireless communications devices andprotocols. The subscriber database 13 can be understood to include amemory having one or more physical or logical partitions and/orsegments, and can optionally and additionally utilize one or more ofwell-known database packages including MySQL, SQL, Oracle, Informix,Sybase, the Freedom Engine, Access, ODBC, DB2, etc., with such examplesprovided for illustration and not limitation. In an embodiment, thedatabase 13 can reside in a memory of the server 14.

[0041] In an embodiment, the server 14 can access subscriber informationfrom the database 13 to cause the query information to be distributed toone or more subscribers 16 a, 16 b, 16 c. In the illustrated system, thedatabase 13 can include URLs of subscriber servers 16 a, 16 b, 16 c(also referenced herein collectively or individually as 16). The queryinformation can be transferred, distributed, or otherwise communicatedto the subscriber servers 16 simultaneously as in a broadcast, or usingan ordered scheme that can include network or load balancing schemes.The FIG. 1 system illustrates the communication of query information tothree subscribers 16 a, 16 b, 16 c although the methods and systems canbe applied to one or more subscribers and the number of subscribers isnot a limitation. For an embodiment wherein the system server 14communicates to the subscriber servers 16 via a network such as theinternet, the transfer of the query information can be performed usingHTTP or HTTPS, for example, although such an example is provided forillustration and not limitation.

[0042] The illustrated subscribers 16 a, 16 b, 16 c can be servers asdescribed previously herein with respect to the System Server 14. Theservers 16 can include one or more data sources 20 a, 20 b, 20 c, 20 d(also referenced herein collectively or individually as 20). Thesubscribers 16 also include a dictionary 18 a, 18 b, 18 c, 18 d (alsoreferenced herein collectively or individually as 18) that can beassociated with and based on the data sources 20 a, 20 b, 20 c, 20 d. Inan embodiment such as that of FIG. 1, a data source 20 can be associatedwith a dictionary 18, although in some embodiments, one dictionary 18can be associated with more than one data source 20. Alternately, in anembodiment, one data source 20 could be associated with more than onedictionary 18.

[0043] For the illustrated systems and methods, as described previouslyherein, a dictionary 18 can be understood to be a translator between thereceived query information, received from the System Server 14 asdescribed herein, and a data source 20. For the illustrated systemswhere one dictionary 18 corresponds to a data source 20, a dictionary 18can be formed by installing a computer program on the subscriber server16. In an embodiment, the computer program can be run from a remotelocation via a network. As indicated previously, in some embodiments,the survey computer program can be understood as a survey engine thatexamines the data sources 20 on the server 16. As indicated previously,the dictionary 18 can incorporate the survey engine results to provide acustomized interface between received query information, and the datasource 20.

[0044] For example, if the data source 20 is a database, the surveyengine can identify labels of tables, rows, and columns, andabbreviations of labels, when necessary. This survey information can beincorporated into a dictionary 18 to allow received query information tobe properly translated for the database. In the case of a database,query information from a user of the initiating device 12 can be aninput to a dictionary 18, and the dictionary output can be a customizedSQL query that uses terminology, abbreviations, etc., derived from thesurvey engine. In some embodiments, the dictionary output can be acustomized HTTP search string that can utilize a general access methodthat can be created for the data source (e.g., the HTTP search stringcan be formatted based on drop-down menus/boxes, radio buttonselections, and/or other general access provisions). In an example of adatabase embodiment, a database can be configured with columns or rowsthat relate to colors that are abbreviated, such as “Rd” for Red, “Bl”for Blue, etc. If query information is submitted with the word “Blue”,the customized dictionary can cause a customized query to be formattedusing “Bl” according to the survey information. Accordingly, rowinformation and column information can be understood herein to include acharacterization of the database information that can include headerinformation, element information, extraneous information that canotherwise provide insight to the database, etc.

[0045] Additionally and optionally, when the data source 20 is text, thesurvey engine can scan the text, identify synonyms, abbreviations, etc.,for incorporation into a dictionary 18. A dictionary for a text datasource 20 can format received query information into an advanced textquery that can utilize a standard text engine. Some examples of standardtext engines can include AltaVista, Excite, Google, Infoseek, Inktomi,Microsoft Index Server, etc., although such examples are provided forillustration and not limitation. Optionally and additionally, thedictionary can convert the received query information into a HTTP querythat can be formatted according to a web page on the server 16, wherethe web page can include text input boxes, radio buttons, drop-downboxes, check-boxes, etc.

[0046] The illustrated dictionaries 18 can also include a naturallanguage and linguistic processor that is well-known in the art forparsing received information, performing context analysis, generatingsynonyms, etc. The dictionaries 18 also include a spell corrector thatcan verify word spellings and generate phonetic equivalents, althoughsuch features can reside independent of the spell corrector. Thedictionaries 18 can also perform word variations to better interpretand/or distinguish words, for example, between similar words such as“build”, “builder”, and “building.” Furthermore, the dictionaries 18 canperform phrase identification that includes identifying word groupswithin context. For example, “wrinkle-free” can be interpreted withrespect to clothes, or in another manner with respect to plasticsurgery. Accordingly, it can be understood that the dictionaries 18 forthe illustrated systems and methods can extend the received queryinformation to include terminology that is compatible with, understoodby, and/or interpreted by a data source 20 to which the dictionary 18corresponds.

[0047] A dictionary 18 can be equipped with a foreign languagetranslator to convert received query information from one language, toanother language that is compatible with the data source 20. In someembodiments, a dictionary 18 can be established for different languages,while in another embodiment, a single dictionary 18 can translatequeries for multiple languages.

[0048] A dictionary 18 can determine that received query informationfrom the initiating device 12 is not compatible with the data source 20or otherwise cannot be interpreted. In an embodiment, the dictionary 18can generate a list of possible interpretations for a user of theinitiating device 12 to select. Additionally and optionally, thedictionary 18 can cause the initiating device 12 to provide a user witha request for additional, alternate, or restated query information.

[0049] A dictionary 18 can also identify a Frequently Asked Question(FAQ) and supply either a pre-defined answer to a user at the initiatingdevice 12, or redirect the user to, for example, a web page thatincludes an answer. A dictionary 18 can also recognize and respondappropriately to query information that seeks a “yes” or “no” answer,time-based queries using date or time terminology including “now”, “lastmonth”, “before”, “between”, etc., and arithmetic queries that caninclude mathematical concepts such as “lowest-priced”, “top 5”, “lessthan”, etc.

[0050] In the illustrated systems and methods, results of a customizeddata source search can be provided to a dictionary 18, and thedictionary 18 can thereafter organize, format, etc., the search resultsfor return to the initiating device 12. The information can be presentedvia the subscriber server 16 to the System Server 14 and hence to theinitiating device 12, or directly from the subscriber server 16 to theinitiating device 12. In one embodiment, the search results can beformatted in XML to allow the server 16 to format the results accordingto a web application that can be executing on the subscriber server 16.For example, the XML output from the dictionary 18 can be used inExtensible Stylesheet Language (XSL) stylesheets or other web formattingoptions. Those with ordinary skill in the art will recognize that manyformats for the dictionary output can be utilized, and the use of XMLherein is provided for illustration and not limitation. For example, inone embodiment, HTML templates can be utilized to present search resultsdirectly to an internet browser without requiring additionalprogramming. Other forms of SGML documents or other textual formats canbe used without departing from the scope of the techniques providedherein. Alternately, search results can be presented graphically usingbar charts, pie charts, histograms, Excel compatible spreadsheets, etc.Search results can also be saved as an Excel compatible file for lateranalysis. Additionally and optionally, the methods and systems hereincan allow the search results to be provided to an application through avariety of Application Programmer Interfaces (APIs).

[0051] In some embodiments, the requested query information can providesignificant search results. The methods and systems herein can providethe search results using a format that includes categories andsub-categories from which a user at the initiating device 12, forexample, can further select. Aggregate data can also be presented withhyperlinks to detailed information to allow users to retrieve furtherinformation without providing further details, follow-up questions, etc.Those with ordinary skill in the art will thus recognize that althoughthe methods and systems presented herein are provided with respect to aninternet illustration that includes browsers, etc., other interfaces canbe utilized to retrieve query information and present query results.

[0052] A user or system manager associated with a server 16 can provideor otherwise designate filtering schemes for providing search results. Asubscriber, for example, can determine to exclude products fromparticular users based upon a received profile (i.e., age, etc.). Thosewith ordinary skill in the art will recognize that there are manyparameters by which a subscriber can filter or otherwise customize thesearch results.

[0053] The methods and systems can operate with security measures thatcan be established by a system manager related to a server 16. Forexample, query information can be received or otherwise associated withidentity information. A dictionary 18 can be configured to prevent thequery information from being applied to a data source for which the useris not allowed to otherwise access. In such an embodiment, the methodsand systems herein can be incorporated behind a firewall.

[0054] Those with ordinary skill in the art will recognize that themethods and systems can also be practiced outside of a firewall. In suchan embodiment, a distributed or other search can be performed across anetwork such as the internet or an intranet, wherein accessibility tothe data sources may not be protected by a firewall. As indicatedpreviously, search results can be aggregated at the initiating device 12or another remote device for presentation to a user.

[0055] A dictionary 18 can also generate an output log that can beunderstood to be a computer file that can be accessed by a systemadministrator or other authorized individual or entity according to theserver 16 configuration or other authorization scheme. The log file canbe stored locally on the server 16 or another memory device connected tothe server 16 through a wired or wireless network. The log files can beconfigured to provide data pertaining to received query information,customized search queries, generated search results, query identity,data source identity, time of query, etc., with such examples providedonly for illustration. By editing the log file, a system administratorcan view the effectiveness of the dictionary with respect to queryinformation, desired results, security, etc. Filters can be applied tothe log files to provide log results based on results generated, date,time of day, time period, etc.

[0056] In the illustrated embodiments, a system administrator or otherauthorized user can edit a dictionary 18 to further customize thedictionary 18. Such edits can result from an analysis of the log file,for example. Dictionary edits can also be performed to further enhancebusiness objectives. For example, automated, scheduled searches can beperformed to query databases for stock information, etc. In anembodiment, an email can be generated based on a search. For example, inan automated search established by an administrator to verify stockquantity, once a stock quantity reaches a predetermined value, an emailcan be sent to the administrator and/or another interested party.

[0057] A system manager or other authorized user can also customize adictionary 18 and provide rules against which searches can be performedand search results can be presented. For example, a system manager canedit the dictionary to include a formula or rule for determining aprofit margin, and have results presented in order of profit margin.Other rules could present results by vendor, product availability,price, etc., with such examples provided for illustration and notlimitation. Such manual customization of a dictionary 18 can beperformed and applied according to a particular user, or a group ofusers. The dictionary editing can be performed locally or via a network.

[0058] In some practices of the systems and methods, system requirementscan provide for certain query information to be if provided. If thequery information is not provided by the user at the initiating device12, the user can be prompted to enter the remaining information.

[0059] Accordingly, a dictionary 18 can include one or more of relevantcontent and/or values from a data source 20, a representation ofschemas, relationships, and category hierarchies from the data source20, configuration settings according to users and/or groups of users,business rules, terminology definitions or specifications, synonyms, alanguage translator, a natural language processor, an output dataformatter, and a log file generator.

[0060] The methods and systems herein can also allow for the aggregationof customized query results from multiple data sources and/ordictionaries. For example, as provided herein, query informationsubmitted at an initiating device 12 can be broadcast to one or moredictionaries in broadcast or some other sequenced manner, wherein thesearch results can be filtered or otherwise aggregated at the SystemServer 14. The filtering or other presentation of information performedby the System Server 14 can be performed additionally and optionally tofiltering and organization that can be performed at individualdictionaries 18 and or servers 20.

[0061] Referring now to FIG. 3, there is a diagram representing themethods and systems in an embodiment that can be known as a querytranslation embodiment 30. In the FIG. 3 configuration, queryinformation can be presented to the system 32 through an API 33 and to aquery translator 34. The query translator 34 can translate the queryinformation into a SQL statement, advanced text search expression, HTTPcall, etc, by accessing a dictionary 18 that corresponds to a datasource 20 to be searched. For the FIG. 3 embodiment, a server 16 canprovide the received query information to the system 32 to receive fromthe system 32 via the query translator 34, a SQL statement, advancedtext search expression, HTTP call, etc. The server 16 can thereaftersubmit or apply the returned search to a relational database, textsearch engine, etc.

[0062] Referring to FIG. 4, there is a diagram of a configuration 40 forthe methods and systems that can allow the return of a data set forformatting a search request, by an application that can reside on theserver 16 or another device. As indicated by FIG. 3, query informationcan be provided by the server 16. The query information can include orbe accompanied by a dictionary selection, a user ID, business rules,etc., and a desired output format to the system 42 through its API 33.This interface can be implemented using HTTP, Component Object Module(COM), Java, Enterprise, Javabean, C, C++, Visual Basic, or anotherwell-known it method. The natural language query, dictionary selection,and output format can be input to a query processor 44 that includes adata access module 46 that transfers the query information anddictionary selection to a query translator 34. The query translator 34can utilize the specified dictionary 18 and query information togenerate a customized query as provided herein. Those with ordinaryskill in the art will recognize that although FIG. 4 depicts a singledictionary 18 and query translator 34, the embodiment of FIG. 4 caninclude multiple dictionaries and/or query translators. The customizedquery can be transferred to the data access module 46 that can issue thecustomized query to the data source 20 corresponding to the query. FIG.4 demonstrates two data sources 20 that include a relational databasemanagement system 20 a and a text search engine 20 b, although otherdata sources can be utilized and specified. The customized query searchresults can be returned to the data access module 46 and thereaftertransferred to the formatting module 48 with the specified outputformat. The formatting module 48 can format the query results based onthe specified format, and transfer the formatted output to the server 16through the API 33. In an embodiment, the formatted results can betransferred to the server 16 in XML format. A web application on theserver 16 or another location can transform the XML search results intoa desired presentation style using, for example, the W3C standardextensible stylesheet language transformation (XSLT) and HTML.

[0063] Referring to FIG. 5, there is a diagram for an embodiment 50where the search results can be presented to a server application in aready-to-display format. As was shown in FIG. 4, in FIG. 5, a server 16can provide query information, dictionary selection, and output formatto the data access module 46 of the query processor 44. The data accessmodule 46 can provide the query information and dictionary selection tothe query translator module 34 that utilizes the specified dictionary 18to generate a customized search or query. The customized search can beprovided to the data access module 46 and executed against theappropriate data source 20. The results of the search can be returned tothe formatting module 48 via the data access module 46, with thespecified output format. The formatted search results can be provided tothe server 16 for display. In the illustrated system of FIG. 4, theformatted results can be fully customizable HTML templates for output tothe internet, and can include colors, headers, footers, and othercustomizable characteristics to match the web site. The HTML canadditionally and optionally include graphs, pie charts, bar graphs,reports, and spreadsheets that can be displayed using, for example,ActiveX control or Java applet.

[0064] As indicated with reference to FIG. 4, the system and methodsaccording to FIG. 5 can be practiced with multiple query translators 34and/or dictionaries 18. Additionally, the data sources 20 a, 20 b can bemultiple and can include other data sources than illustrated. In theembodiments herein, although identification can be provided with a queryrequest, some embodiments may not utilize query information.

[0065] Referring now to FIG. 6, there is shown an embodiment 60 whereina “broker dictionary” 18 e can be utilized to interface to otherdictionaries and data sources. One of ordinary skill in the art willrecognize from the description of the methods and systems providedherein, that a server 16 that is not illustrated, can be associated withthe broker dictionary 18e. The illustrated broker dictionary 18 e caninclude, for example, URLs of other servers at different locations in alocal or other network (e.g., internet, intranet, LAN, WAN, etc.) thathave relevant data sources and/or dictionaries. Dictionaries to whichthe broker dictionary 18e can communicate can be referred to herein asbroadcast dictionaries. In an embodiment, the broker dictionary 18 e canprovide an interface for a subscriber 16 with multiple servers. Themultiple servers can maintain different customized dictionaries, or canshare the broker dictionary 18 e. In some embodiments, the brokerdictionary 22 can interface to multiple subscribers 16 and/or datasources 20.

[0066] According to the FIG. 6 system, the broker dictionary 18 e canreceive query information from the initiating device 12 and the brokerdictionary 18 e can filter the search request to eliminate broadcastdictionaries and/or data sources 20 that do not include data relevant tothe query information. The broker dictionary 18 e can therefore includesophisticated and intelligent filters to eliminate unneeded broadcastsearch requests. Those with ordinary skill in the art will recognizethat the broker dictionary 18 e can include the attributes previouslyprovided to dictionaries in general, including but not limited tolanguage translation, synonym generation, natural language processing,business rules, etc.

[0067] The broker dictionary 18 e can relay or broadcast query itinformation, as processed by the broker dictionary 18 e, unprocessed, ora combination thereof, to the selected broadcast dictionaries 18 f, 18g, 18 h and other data sources 20 e, 20 f, 20 g. For example, in theillustrated system of FIG. 5, the broker dictionary 18 e can process thequery information to provide a customized query that can be provided tothe non-broadcast dictionary data sources 20 e, 20 f, 20 g. Similarly,the broadcast dictionaries 18 f, 18 g, 18 h can receive either thecustomized query information or the original query information from theinitiating device 12. In either case, the broadcast dictionaries 18 f,18 g, 18 h can process the received query information from the brokerdictionary 18 e, and distribute a customized query to one or more datasources 20 h, 20 i, 20 j as provided previously herein. The customizedquery results from the different data sources 20 e-20 j can betransmitted or otherwise transferred to the broker dictionary 18 e. Theillustrated broker dictionary 18 e can receive customized query searchresults and format the results to present a single result package to theinitiating device 12 or other server 16 or application as providedherein. In some embodiments, the broker dictionary 18 e can filter thesearch results before transferring or communicating the search resultsas provided herein.

[0068] Those with ordinary skill in the art will recognize that thesystems and methods herein can include one or more databases that can bein communication with the servers 16 but are not otherwise illustratedin the representative figures. For example, a database can be utilizedto maintain information based on user identity and privileges, brokerdictionaries and associated broadcast dictionaries, rules for filteringquery results, etc.

[0069] Accordingly, it can be understood that the methods and systemsdisclosed herein can be applied to a variety of queries. For example,the query information initially submitted can be a question, such as“How far is bank XXX from home?”, such that data pertinent to the user(e.g., “home”) and data related to a another sensor or entity (e.g.,mapping program or distance calculator) can be integrated with the queryinformation to provide an appropriate response. Questions can bepresented in succession, and results from one question can be a basis asinput to the dictionary for subsequent questions.

[0070] The techniques described herein are not limited to a particularhardware or software configuration, and may find applicability in manycomputing or processing environments. The techniques can be implementedin hardware or software, or a combination of hardware and software. Thetechniques can be implemented in one or more computer programs executingon one or more programmable computers that include a processor, astorage medium readable by the processor (including volatile andnonvolatile memory and/or storage elements), one or more input devices,and one or more output devices.

[0071] The computer program(s) is preferably implemented in one or morehigh level procedural or object-oriented programming languages tocommunicate with a computer system; however, the program(s) can beimplemented in assembly or machine language, if desired. The languagecan be compiled or interpreted.

[0072] The computer program(s) can be preferably stored on a storagemedium or device (e.g., CD-ROM, hard disk, or magnetic disk) readable bya general or special purpose programmable computer for configuring andoperating the computer when the storage medium or device is read by thecomputer to perform the procedures described herein. The system can alsobe considered to be implemented as a computer-readable storage medium,configured with a computer program, where the storage medium soconfigured causes a computer to operate in a specific and predefinedmanner.

[0073] One potential advantage of the methods and systems is that aninternet user may obtain reliable, accurate, and efficiently organizedinformation in response to a search or query request.

[0074] What has thus been described is a method and system for providingefficient searching of devices on communications networks, such asservers on the internet, using an application that can survey asubscriber's server that can include a catalog and database, and use theformatting information and data from the survey to create a dictionarycustomized to the subscriber's data sources. A user seeking informationcan initiate a search from an initiating device using keywords, naturallanguage terms, connectors, expressions, etc., wherein such queryinformation can be transmitted to various subscriber customizeddictionaries. The customized dictionaries can customize the query basedon respective subscriber databases and text documents, text searchengines, etc., to produce an accurate search result. The search resultscan be filtered and integrated for presentation to the initiatingdevice. Search results can be customized using user of preference orprofile information.

[0075] Although the methods and systems have been described relative tospecific embodiments thereof, the methods and systems are not solimited. Obviously many modifications and variations may become apparentin light of the above teachings. For example, although the illustratedembodiment presented herein related to the internet, the methods andsystems can be applied to searching other devices on othercommunications networks. Although HTML and XML languages were utilizedto facilitate the searching, other languages may be utilized. The surveyprogram can be run locally on a server, or remotely from anotherplatform. Similarly, a dictionary can be accessed and/or managed locallyor remotely using wired or wireless communications systems and methods.Results of customized queries can be aggregated at a server havingmultiple data sources, and thereafter transferred to the system serverthat can aggregate the results. In another embodiment, an applicationresiding on the initiating device can receive and aggregate the resultsfor presentation on the device. In an embodiment, search results can bedisplayed according to a user identification and/or information storedin a central database or local memory that includes user-specificpreferences. The preferences can indicate suppliers, price, and othersearch-relevant criteria that can be submitted with the natural languagesearch terms. In embodiments utilizing a user account for preferences,the respective subscriber dictionaries can integrate the user'spreferences with the search terms to increase the probability ofsatisfying a search query for a user. In another embodiment, a user canbe prompted for preference criteria, while in another embodiment, useridentification data can be entered and submitted with the searchcriteria. Upon receiving the user identification data, a dictionary cancause a pre-stored user profile to be extracted and incorporated intothe search.

[0076] In some embodiments, a user can be presented with search resultsand can select the desired results for purchase. Search results can beaccompanied by a URL of the order processing system that can be used toorder the product; and, when the user selects the item, the relevantproduct information can be submitted to the purchasing system toinitiate the purchase process. In an embodiment, the user's selection ofa product can provide a transition to an order basket or other orderingscheme that can be provided by the initiating website, the subscriber'swebsite, or an alternate website. In these embodiments, the orderingscheme can interface to a browser or other interface at the initiatingdevice.

[0077] Data sources and dictionaries do not have to reside on the sameserver, medium, etc. Additionally, methods of presenting a query andpresenting query results can be integrated with instant messaging and/oremail.

[0078] Many additional changes in the details, materials, andarrangement of parts, herein described and illustrated, can be made bythose skilled in the art. Accordingly, it will be understood that thefollowing claims are not to be limited to the embodiments disclosedherein, can include practices otherwise than specifically described, andare to be interpreted as broadly as allowed under the law.

What is claimed is:
 1. A method for providing a SQL search query for adatabase, comprising, identifying database information based on at leastone of, at least one database column information, at least one databaserow information, and at least one database element, providing queryinformation, processing the query information with a natural languageprocessor, and, generating the SQL search query based on the processedquery information and the identified database information.
 2. A methodaccording to claim 1, wherein providing query information includesproviding a natural language expression.
 3. A method according to claim1, wherein providing query information includes providing queryinformation via a network.
 4. A method according to claim 1, whereinproviding query information includes receiving a HTTP message.
 5. Amethod according to claim 1, wherein providing query informationincludes providing at least one query term.
 6. A method according toclaim 1, wherein processing the query information includes determiningat least one of query information context and at least one synonym basedon the query information.
 7. A method according to claim 1, whereinidentifying database information includes identifying at least one of atleast one database column header and at least one database row header.8. A method according to claim 1, wherein identifying databaseinformation further includes determining at least one relationshipbetween at least two rows or at least two columns.
 9. A method forproviding a query for a text document, comprising, determining at leastone text document keyword and an associated keyword context, providingquery information, processing the query information with a naturallanguage processor, and, generating the query based on the processedquery information, the keyword, and the associated keyword context. 10.A method according to claim 9, wherein providing query informationincludes providing a natural language expression.
 11. A method accordingto claim 9, wherein providing query information includes receiving aHTTP message.
 12. A method according to claim 9, wherein processing thequery information further includes determining at least one of queryinformation context and at least one synonym based on the queryinformation.
 13. A method according to claim 9, wherein providing queryinformation includes providing query information via a network.
 14. Amethod for distributing a query to at least one data source on anetwork, the method comprising, for the at least one data source,providing at least one dictionary, wherein providing the at least onedictionary further includes, receiving the query, translating the queryto a customized query based on the at least one data source, applyingthe customized query to the at least one data source, receiving resultsfrom the customized query, and, communicating the results to a device onthe network.
 15. A method according to claim 14, wherein providing atleast one dictionary includes providing at least one of providing atleast one dictionary based on a database and providing at least onedictionary based on at least one textual document.
 16. A methodaccording to claim 15, wherein providing at least one of a textualdocument includes providing at least one of a text file and a fileincluding program instructions.
 17. A method according to claim 14,wherein receiving the query includes receiving at least one of a naturallanguage query and at least one keyword.
 18. A method according to claim14, wherein receiving the query includes receiving the query via anetwork.
 19. A method according to claim 14, wherein receiving the queryincludes receiving at least one relational operator.
 20. A methodaccording to claim 14, wherein providing at least one customizeddictionary further includes, identifying the at least one data source,and, surveying the at least one data source based on the identity of theat least one data source.
 21. A method according to claim 14, whereintranslating the natural language query includes translating the queryfrom a first language to a distinct second language.
 22. A methodaccording to claim 14, wherein translating the query includes processingthe query using a natural language processor.
 23. A method according toclaim 14, wherein translating the natural language query includesperforming a spell check.
 24. A method according to claim 14, whereintranslating the query includes performing a context evaluation of thequery.
 25. A method according to claim 14, wherein translating the queryincludes determining a data format of the data source.
 26. A methodaccording to claim 14, wherein translating the query includesidentifying at least one abbreviation in the natural language query. 27.A method according to claim 14, wherein translating the query includesidentifying at least one abbreviation in the data source.
 28. A methodaccording to claim 14, wherein translating the query includesidentifying at least one of at least one column header, at least one rowheader, and at least one textual term.
 29. A method according to claim14, wherein translating the query includes identifying at least one wordvariation.
 30. A method according to claim 14, wherein translating thequery includes identifying at least one phrase variation.
 31. A methodaccording to claim 14, wherein translating the query includesidentifying at least one code based on the data source.
 32. A methodaccording to claim 14, wherein translating the query includes generatingat least one phonetic equivalent.
 33. A method according to claim 14,wherein translating the query includes identifying a Frequently AskedQuestion (FAQ).
 34. A method according to claim 14, further includingcreating a log file that includes at least one of the query, thecustomized query, the customized query results, and a time of query. 35.A method according to claim 14, further comprising associating at leastone of at least one identity and at least one privilege with the query.36. A method according to claim 14, further comprising performing atleast one filtering of the results from the customized query.
 37. Amethod according to claim 14, wherein communicating the results to adevice on the network includes generating a SGML document.
 38. A methodaccording to claim 14, wherein communicating the results to a device onthe network includes generating at least one of a graph, a pie chart, aspreadsheet, and a histogram based on the results of the customizedquery.
 39. A method according to claim 14, wherein communicating theresults to a device on the network includes communicating the results toa server.
 40. A method according to claim 14, wherein communicating theresults to a device on the network includes at least one of generatingan email, generating an instant-message, and generating a voice reply.41. A method according to claim 14, wherein applying the customizedquery to the at least one data source includes transferring the query toa broadcast dictionary.
 42. A method according to claim 14, whereinreceiving results from the customized query includes receiving resultsfrom at least one of at least one text document, at least one database,and at least one broadcast dictionary.
 43. A method according to claim14, wherein applying the customized query includes applying at least oneof a SQL query and search expression.
 44. A method according to claim14, wherein providing at least one customized dictionary furtherincludes conditioning the application of the customized query based onat least one of an identity and a profile associated with the naturallanguage query.
 45. A method according to claim 14, wherein applying thecustomized query further includes conditioning the application of thecustomized query based on the data source.
 46. A system for providing acustomized query in response to a query, the system comprising, aninitiating device for providing a query, at least one data source, and,a processor in communication with the initiating device and the at leastone data source, the processor having instructions for receiving thequery, processing the query to generate a customized query based on theat least one data source, applying the customized query to the datasource, and receiving results from the customized query.
 47. A systemaccording to claim 46, wherein the initiating device includes amicroprocessor-controlled device.
 48. A system according to claim 46,wherein the query includes at least one word.
 49. A system according toclaim 46, wherein the query includes at least one relational operator.50. A system according to claim 46, further including at least one firstserver in communication with the initiating device and the data source.51. A system according to claim 46, further including at least onedatabase in communication with the second server.
 52. A system accordingto claim 46, further including at least one database in communicationwith the at least one first server and the at least one data source. 53.A system according to claim 46, further including at least one thirdserver in communication with the second server, to receive at least oneof the customized query or the natural language query from the secondserver.
 54. A system according to claim 46, wherein the at least onedata source includes at least one of at least one text document and atleast one database.
 55. A system for performing a search in response toa query, the system comprising, at least one data source, at least onedictionary based on the at least one data source, and, a processorhaving instructions for receiving the query, generating a customizedquery based on the at least one dictionary and the query, and applyingthe query to the at least one data source.
 56. A system according toclaim 55, wherein the data source includes at least one of at least onetext document and at least one database.
 57. A system according to claim55, further including a survey engine to examine the at least one datasource.
 58. A system according to claim 55, further including a networkinterface to receive the query.
 59. A system according to claim 55,further including a memory to store privilege information associatedwith the at least one data source.
 60. A system according to claim 55,further including a distinct second processor to supply the query.
 61. Asystem for providing a customized query, the system comprising, meansfor providing a query, data source means, means for receiving the query,submitting the query to a natural language processor, and generating acustomized query based on the query and the data source means.
 62. Asystem according to claim 61, wherein the means for providing a queryincludes a microprocessor-controlled device.
 63. A system according toclaim 61, wherein the data source means includes at least one of atleast one database and at least one text document.
 64. A systemaccording to claim 61, wherein the means for receiving the queryincludes a processor.
 65. A computer product for providing a SQL searchquery for a database, the computer product disposed on a computerreadable medium and comprising instructions for causing a processor to,identify database information based on at least one of, at least onedatabase column information, at least one database row information, andat least one database element, provide query information, process thequery information with a natural language processor, and, generate theSQL search query based on the processed query information and theidentified database information.
 66. A computer product according toclaim 65, wherein instructions to provide query information includeinstructions to providing a natural language expression.
 67. A computerproduct according to claim 65, wherein instructions to provide queryinformation include instructions to providing query information via anetwork.
 68. A computer product according to claim 65, whereininstructions to provide query information include instructions toreceive a HTTP message.
 69. A computer product according to claim 65,wherein instructions to provide query information include instructionsto provide at least one query term.
 70. A computer product according toclaim 65, wherein instructions to process the query information includeinstructions to determine at least one of query information context andat least one synonym based on the query information.
 71. A computerproduct according to claim 65, wherein instructions to identify databaseinformation include instructions to identify at least one of at leastone database column header and at least one database row header.
 72. Acomputer product according to claim 65, wherein instructions to identifydatabase information further include instructions to determine at leastone relationship between at least two rows or at least two columns. 73.A computer product for providing a query for a text document, thecomputer product disposed on a computer readable medium and comprisinginstruction for causing a processor to, determine at least one textdocument keyword and an associated keyword context, provide queryinformation, process the query information with a natural languageprocessor, and, generate the query based on the processed queryinformation, the keyword, and the associated keyword context.
 74. Acomputer product according to claim 73, wherein instructions to providequery information include instructions to provide a natural languageexpression.
 75. A computer product according to claim 73, whereininstructions to provide query information include instructions toreceive a HTTP message.
 76. A computer product according to claim 73,wherein instructions to process the query information further includeinstructions to determine at least one of query information context andat least one synonym based on the query information.
 77. A computerproduct according to claim 73, wherein instructions to provide queryinformation include instructions to provide query information via anetwork.